package com.danbay.cloud.device.api.service;

import com.danbay.cloud.device.api.dto.CollectorCountDto;
import com.danbay.cloud.device.api.dto.ReportDataDto;
import com.danbay.cloud.device.api.dto.ReportRelayDto;
import com.danbay.cloud.device.api.dto.WiredMeterDataReportDto;
import com.danbay.framework.exception.BusinessException;
import com.danbay.framework.springnc.annotation.AutoController;
import com.danbay.framework.springnc.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 设备数据上报服务接口
 * @author SJG
 * @date 2017/10/23
 */
@AutoController()
@RequestMapping("/device-service/device/report")
public interface IDeviceReportDataService {

    /**
     * 上报实抄数据
     * @param reportDataDto
     * @throws BusinessException
     */
    @RequestMapping("/realData")
    void realData(@RequestBody ReportDataDto reportDataDto) throws BusinessException;

    /**
     * 上报日冻结数据
     * @param reportDataDto
     */
    @RequestMapping("/freezeData")
    void freezeData(@RequestBody ReportDataDto reportDataDto) throws BusinessException;

    /**
     * 设备主动数据上报
     * @param reportDataDto
     * @throws BusinessException
     */
    @RequestMapping("/dataReport")
    void dataReport(@RequestBody ReportDataDto reportDataDto) throws BusinessException;

    /**
     * 电表的继电器信息上报
     * @param reportRelayDto
     * @throws BusinessException
     */
    @RequestMapping("/reportRelay")
    void reportRelay(@RequestBody ReportRelayDto reportRelayDto) throws BusinessException;

    /**
     * 带采集器的有线电表数据上报
     * @param wiredMeterDataReport
     * @throws BusinessException
     */
    @RequestMapping("/wiredMeterDataReport")
    void wiredDataReport(@RequestBody WiredMeterDataReportDto wiredMeterDataReport) throws BusinessException;

    /**
     *获取水电表下接档案数
     * @param collectorCountDto
     * @throws BusinessException
     */
    @RequestMapping("/collectorCount")
    void getCount(@RequestBody CollectorCountDto collectorCountDto) throws BusinessException;
}
